package com.shunda.ysdgj.common.util;

import cn.hutool.core.lang.Validator;

import java.math.BigDecimal;

public class ValidateUtil {

    public static boolean isDecimal(BigDecimal bg) {
        if (bg == null) {
            return false;
        }
        BigDecimal zeroBg = new BigDecimal("0.00");
        if (bg.compareTo(zeroBg) <= 0) {
            return false;
        }
        return Validator.isMatchRegex("^\\d+\\.?\\d*$", bg.toString());
    }

    public static boolean isNotDecimal(BigDecimal bg) {
        return !isDecimal(bg);
    }

    public static boolean isNotLong(Long l) {
        if (l == null || l <= 0) {
            return true;
        }
        return isNotNumber(l.toString());
    }

    public static boolean isLong(Long l) {
        return !isNotLong(l);
    }

    public static boolean isNotInteger(Integer i) {
        if (i == null) {
            return true;
        }
        return isNotNumber(i.toString());
    }

    public static boolean isInteger(Integer i) {
        return !isNotInteger(i);
    }

    // 是否为数字
    public static boolean isNumber(String s) {
        return Validator.isMatchRegex("^\\d+$", s);
    }

    // 是否不是数字
    public static boolean isNotNumber(String s) {
        return !isNumber(s);
    }

    // 是否不为空
    public static boolean isNotBlank(String s) {
        return Validator.isMatchRegex("^\\S*.+\\S*$", s); // 匹配一个或多个连续的非空白字符
    }

    // 是否为空
    public static boolean isBlank(String s) {
        return !isNotBlank(s); // 匹配一个或多个连续的非空白字符
    }

    // 是否在指定长度内
    public static boolean isLimitLen(int min, int max, String s) {
        String reg = String.format("^\\S{%d,%d}$", min, max);
        return Validator.isMatchRegex(reg, s);
    }

    // 是否不在指定长度内
    public static boolean isNotLimitLen(int min, int max, String s) {
        return !isLimitLen(min, max, s);
    }

    // 是否不是手机号
    public static boolean isNotMobile(String s) {
        return !Validator.isMobile(s);
    }
}
